package com.cskaoyan.javase.file.introduction1;

/**
 * @description: 路径的表示形式
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 路径的表示方式：
 * 1，绝对路径，通过这个路径可以唯一的确定一个文件或者文件夹
 * 以Windows为例子：要包含盘符，用\分隔不同的目录 带着盘符都是绝对路径
 * E:\1\test.txt
 * 以Linux、Unix、MacOS类Unix系统中：它没有盘符的概念，但是有根目录的概念，用/表示 只要带着根目录/的路径都是绝对路径
 * /wangdao/share/JAVA/soft
 *
 * 2，相对路径，通过这个路径不可以唯一的确定一个文件或者文件夹
 * Windows：test.txt 这个就是相对路径，只要不带盘符
 * 所以相对路径如果想要确定是哪个文件，必不可少的就是要知道 这个相对路径相对于谁
 * test.txt相对于E:\1   现在就能找到这个文件了
 * 实质上来说，相对路径只是把绝对路径砍两半，后面的就是相对路径
 *
 * 以Linux、Unix、MacOS类Unix系统中，只要不带/，不带根目录都是相对路径
 * soft相对于/wangdao/share/JAVA/
 * 为啥非要搞一个相对路径？
 * 相对路径只要你告诉别人相对于谁，那么相对路径可以写的特别短
 * 绝对路径：E:\idea_space\29th\file\src\com\cskaoyan\javase\file\introduction1\Demo.java
 * 相对路径：Demo.java 相对于E:\idea_space\29th\file\src\com\cskaoyan\javase\file\introduction1
 * 相对路径还可以使用/../表示上级目录，所以相对路径很灵活
 *
 * 3，写代码是在IDE里面写，如果我在IDEA中写相对路径，这个时候相对于谁呢？
 * 通过以下方法获取IDEA当前类 相对路径相对于谁
 * System.getProperty(user.dir);
 * 默认情况下，idea工程相对路径就是相对于该工程的根目录
 * 如果这个project中有多个模块，那么默认情况下相对于第一个创建的模块的根目录
 *
 * 这个东西是可以修改的，在右上角的run配置
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        System.out.println(System.getProperty("user.dir"));
    }
}
